SimpleFOC调参3

您所在的位置:网站首页 logix5000 pid 参数 SimpleFOC调参3

SimpleFOC调参3

2024-07-07 02:37| 来源: 网络整理| 查看: 265

目录 背景介绍1. 电流环/力矩环PID整定2. 速度环PID整定3. 位置环PID整定4. 其它注意事项

背景介绍

FOC作为直流无刷电机控制最常用的算法,得到广泛应用。在开源社区最常用的FOC项目有:simpleFOC,ODrive,VESC等。其中simpleFOC因其简单易用,支持多种硬件平台,很适合新手入门。我在用simpleFOC的过程中踩了不少坑,在此记录学习调试过程中的一些心得。

硬件平台:开始最好直接购买套件,熟悉后再自己搭配,我这里直接买的灯哥开源的套件 电机:2204 驱动器:L6234 磁编码器:AS5600 电流检测:INA240 主控MCU:ESP32

软件平台:Arduino,simpleFOC库,simpleFOC studio图形化调试工具

IDE工具:PlatforIO,也可以使用Arduino IDE(编译、下载速度很慢,所以我才找到了替代工具platforIO)

前面两篇总结了simpleFOC studio的基本参数含义,SimpleFOC调参1-力矩控制,SimpleFOC调参2-速度、位置控制,本篇主要总结simpleFOC中PID参数的整定攻略。

1. 电流环/力矩环PID整定

电流环PID整定整体框图如下,Torque control type: FOC current; motion control type: Torque 在这里插入图片描述

一般情况下current q、d的PID参数设置为相同的值,只需要调整好current q的PID参数,current d的PID参数不用再单独调试了。调试整体步骤如下:

I=0,D=0,调试比例增益P,做好记录表格,选择适合的P值D=0, 调试积分增益I,做好记录表格,选择合适的I值一般D=0,不用调整。如果系统出现震荡,再增加一点D值,

测试条件:I=0,D=0时,设置目标值从M0—M0.5,P从5~160变化时,current q的变化量。 在这里插入图片描述 测试结果如下表:从P=20开始,设置M0时手放在电机上开始有震感,P=160时开始有肉眼可见的震荡。选取P=10.

P 值51020507590100150160170current q0.110.230.34手摸时有震感0.420.450.460.460.470.48轻微震荡0.48震荡

在P=10时,设置目标值从M0—M0.5,I从10~1000变化时,current q的从0达到0.5A需要的时间 在这里插入图片描述 测试结果如下表:从I=200开始,current q稳定的时间基本保持不变,选取I=300。

I值10501002003005001000current q稳定时间9020106653

此外要注意low pass filter(LPF)参数的影响。当设置LPF=0.02时,current q的纹波会略微变小,但是在current q变化幅度增大时,很容易出现current q过冲,导致系统不稳定。最后测试选择LPF=0.01,此时虽然current q的纹波略大一点,但是在current q有2A直接跳变到0A时都不会有过冲现象,稳定性大大增加。 在这里插入图片描述

2. 速度环PID整定

电流环PID参数设置好之后,更改motion control type为velocity。 测试条件:I=0,D=0时,设置目标值从M0—M100,P从0.010~0.025变化时,velocity的变化量。在跳变点,不时会出现current q/d过冲的现象。 在这里插入图片描述 测试结果如下表:从P=0.01开始,设置M0—M100,P=0.04时开始出现异常震荡,最终选择P=0.02

P 值0.010.0150.0200.0250.0300.040velocity95979898100震荡

当P=0.02时,设置目标值从M0—M100,I从0.1~0.9变化时,velocity达到100后的过冲量. 在这里插入图片描述 测试结果如下表:从I=0.1开始,设置M0—M100,I=0.9时开始出现异常震荡,最终选择I=0.1

I 值0.10.20.30.40.50.60.70.80.9velocity 过冲量105105108108117130135135震荡 3. 位置环PID整定

位置环PID整定相对简单很多,只需要调整P值就可以了。需要注意:在长时间进行PID整定时,simpleFOC硬件内部参数可能会与studio参数不一致,此时需要把已经整定好的电流、速度PID参数通过程序写入硬件,再调试位置环 测试条件:I=0,D=0时,设置目标值从M0—M3.14,P从1~20变化时,angle从0运动到3.14需要的时间。在跳变点,不时会出现current q/d过冲的现象。 在这里插入图片描述 测试结果如下表:从P=1开始,设置M0—M3.14,最终选择P=10

P 值12351020angle时间40252010105 4. 其它注意事项 motion downsample:用于设置down sample motion loop, 会直接影响motor.loopFOC()循环的速度,默认值10。在进行PID整定时,必须首先保障motion downsample的值相同,不同的值对应的PID参数会不同。output ramp:输出斜率,用于减小输入到力矩控制环的最大变化量。output_ramp越大,PID引起Uq变化的速度更快;output_ramp越小,PID引起Uq变化的速度更慢。单位: V/s。通常控制环1ms循环一次,假设output_ramp=10,则每次循环,PID控制器能引起Uq变化10[V/s] * 0.001s = 0.01V.在调试PID过程中会影响到P值、I值的作用时间,output ramp越大,响应时间越短。每次调节前需要保障output ramp 值相同,不同的值对应的PID参数会不同。 在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3